/* 
 * File:   VulnerabilidadService.h
 * Author: max
 *
 * Created on October 22, 2012, 4:58 AM
 */

#ifndef ECO_SERVICE_H
#define	ECO_SERVICE_H

#include <iostream>
#include <pthread.h>
#include <fstream>
#include <map>
#include <vector>
#include <sstream>
#include "server_IMensajero.h"
#include "server_IMensajeEntranteManejador.h"
#include "server_Proceso.h"
#include "common_Mutex.h"
#include "common_Excepcion.h"
#include "server_Service.h"

#define OK "OK"
#define ERROR "ERROR"
#define PING "PING" 
#define FIN_NOTIFICACION "\n"

using namespace std;
using namespace TP;
using namespace TP::Comunicacion;
using namespace TP::Comunicacion::Eventos;

namespace TP { namespace Servicios {

class EcoService : public Service, public IMensajeEntranteManejador {

public:

    EcoService();

    virtual ~EcoService();

    void Iniciar() throw (Excepcion&);

    void Finalizar() throw (Excepcion&);

    void mensajeEntranteManejador (IMensajero* pMensajero, const string& pMensaje);

private:

    void responderEco(IMensajero* pMensajero, vector<string> &pComando);

    bool ipValida (const string& pIp);
    
    Mutex _mutex2;
};

}}

#endif	/* ECO_SERVICE_H */

